package com.governtalk.backend.service;

import com.governtalk.backend.dto.user.UserProfileDto;
import com.governtalk.backend.entity.User;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


public interface UserService {
    
    UserProfileDto getCurrentUserProfile();
    
    UserProfileDto updateUserProfile(UserProfileDto userProfileDto);
    
    void changePassword(String currentPassword, String newPassword);
    
    String uploadAvatar(byte[] fileBytes, String fileName);
    
    Page<UserProfileDto> getUserList(String keyword, String role, String status, Pageable pageable);
    
    void updateUserStatus(Long userId, String status);
    
    void updateUserRole(Long userId, String role);
    
    User findById(Long id);
    
    User findByUsername(String username);
}
